HTML5 is considered as one of the best and most widely used languages for developing cross-platform mobile applications by packaging web content and executing the content on the existing native device Web Run Time (WRT).
Mobile web applications are indeed hybrid applications, intended to be installed on mobile devices, coupling both native coding and web coding executed on top of native APIs. Web contents define the application user interface (UI) and logic. Native implementation, based on mobile platform vendors' software development kits (SDKs), is used to render such web contents and to access the device native capabilities upon calls from a web layer.
The difference between a fully “native” application and a web application (also called a hybrid application, as it is both native and web based) is mainly associated with technology artifacts that are used to develop the application. A “native” mobile application is developed for a specific mobile platform only, using a specific vendor SDK, gathering native UI elements and having a look and feel specifically matching the running mobile operating system (OS).
A mobile web application is a native application for which the UI and logic is sitting on top of a native implementation (this means it relies on the native webview API and it can benefit from the exact same features), but developed according to HTML5 standards. The UI and logic of the application will use HTML/CSS/JS. This means that what has been developed can be reused across multiple mobile platforms and the developer does not have to learn a new ecosystem every time the developer wants to address a new mobile OS.
In the end, if the application is well designed, end-users will not be able to tell whether the application is a native application or a web application that is executed on their mobile devices.
There are many significant differences between a mobile web site rendered inside a mobile web browser and a standalone mobile web application. A mobile application is, unlike a mobile web site, distributed, standalone, executed in its own context, not using the same web runtime, accessing native APIs, benefiting from improved user experience (e.g. involving a native UI), and defined with its own security policy. As a consequence, there are many features that can sit within a mobile application that in no way can be found inside a mobile site, including interactions with the mobile operating system (e.g. accessing mobile device data and features). For the same reason, a mobile web application cannot work inside a mobile web browser, as it will not have access to the requested features, and such content will simply crash.
In the ecosystem of mobile web applications, it still remains difficult to test the behavior of a deployed mobile web application, such as in a production setting, reflecting the final ecosystem in which the applications will be used by target end-users. For example, it is difficult to test the behavior of a deployed mobile web application across a wide range of mobile devices, due to the wide range of mobile devices available on the market, high fragmentation of those devices with distinct characteristics, behavior and implementation, and the fact all those devices may not be available on site.
Additionally, it is difficult to ensure the same test procedures are used on the range of tested devices, to collect test reports, and aggregate related data. Furthermore, security restrictions present in most operating systems prevent the use of state of art tools to interact with the web runtime for this purpose.
There is thus a need for addressing these and/or other issues associated with the prior art.